webext-detect ![](https://img.shields.io/npm/v/webext-detect.svg)
Detects where the current browser extension code is being run.
This package was recently renamed from webext-detect-page
to webext-detect
Install
You can download the standalone bundle and include it in your manifest.json
.
Or use npm
:
npm install webext-detect
Usage
import {isBackground, isContentScript} from 'webext-detect';
if (isBackground()) {
browser.runtime.onMessage.addListener(console.log);
} else if (isContentScript()) {
browser.runtime.sendMessage('wow!');
}
API
The functions are only ever evaluated once. This protects from future "invalidated context" errors. Read the note about testing if you're running this code in a tester.
To see all the available functions, check the index.d.ts file.
There are also a few helper functions based on the useragent string to loosely detect the current browser: isChrome()
, isFirefox()
, isSafari()
, isMobileSafari()
. They are not intended to detect forks, but just the main engines.
Testing
The calls are automatically cached so, if you're using this in a test environment, import and call this function first to ensure that the environment is "detected" every time:
import {disableWebextDetectPageCache} from 'webext-detect';
disableWebextDetectPageCache();
Related
License
MIT © Federico Brigante